func homework

import (
    "net"
)
/*
1.总结几种 socket 粘包的解包方式: fix length/delimiter based/length field based frame decoder。尝试举例其应用
2.实现一个从 socket connection 中解码出 goim 协议的解码器。
以上作业，要求提交到自己的 GitHub 上面，然后把自己的 GitHub 地址填写到班班提供的表单中：
 https://jinshuju.net/f/e6WKSP


 reference : 

*/


/*
问题1的解法1: 可以通过\r\n来解决分界问题
客户端每次发送消息,必须使用\r来表示终止
*/
func question1_1(){
	listen, err := net.Listen("tcp", "127.0.0.1:8888")
    if err != nil {
        panic(err)
    }
    defer listen.Close()

    for {
        conn, err := listen.Accept()
        if err != nil {
            panic(err)
        }
        reader := bufio.NewReader(conn)
        for {
            slice, err := reader.ReadSlice('\n')
            if err != nil {
                continue
            }
            fmt.Printf("%s", slice)
        }
    }

    //client sender MUST write("\n")
}

/*
问题1的解法2: 在头部放入信息长度
*/
func question1_2(){
    //todo ...
}